﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using EntidadesCompartidas;
using Persistencia;

namespace Logica.Datos
{
    public class LogUsuario:Interfaces.ILUsuario
    {
        //1- Atributo de Clase
        private static LogUsuario _miLogicaUsuario = null;
        //2- Constructor
        private LogUsuario() { }
        //3- Metodo de Clase
        public static LogUsuario GetUsuario()
        {
            if (_miLogicaUsuario == null)
            {
                _miLogicaUsuario = new LogUsuario();
            }
            return _miLogicaUsuario;

        }
        /////////////////////////////////////////////////////////////////////////////////////////////

        #region Miembros de ILUsuario

        public Usuario BuscarUsuario(int pCi)
        {
            Persistencia.Interfaces.IPersUsuario LUsuario = FabricaPersistencia.getPersUsuario();
            return (LUsuario.BuscarUsuario(pCi));
        }

        public Usuario LogeoUsuario(string pUser, string pClave)
        {
            Persistencia.Interfaces.IPersUsuario LUsuario = FabricaPersistencia.getPersUsuario();
            return (LUsuario.LogeoUsuario(pUser,pClave));
        }

        public int AltaUsuario(Usuario pUser)
        {
            Persistencia.Interfaces.IPersUsuario LUsuario = FabricaPersistencia.getPersUsuario();
            return (LUsuario.AltaUsuario(pUser));
        }

        public int ModificarUsuario(Usuario pUser)
        {
            Persistencia.Interfaces.IPersUsuario LUsuario = FabricaPersistencia.getPersUsuario();
            return (LUsuario.ModificarUsuario(pUser));
        }

        public int EliminarUsuario(Usuario pUser)
        {
            Persistencia.Interfaces.IPersUsuario LUsuario = FabricaPersistencia.getPersUsuario();
            return (LUsuario.EliminarUsuario(pUser));
        }

        public List<EntidadesCompartidas.Usuario> ListarUsuariosXcasa(EntidadesCompartidas.Casa pCasa)
        {
            Persistencia.Interfaces.IPersUsuario LUsuario = FabricaPersistencia.getPersUsuario();
            return (LUsuario.ListarUsuariosXcasa(pCasa));
        }
        public int AltaUsuarioXCasa(Usuario pUser, Casa pCasa)
        {
            Persistencia.Interfaces.IPersUsuario LUsuario = FabricaPersistencia.getPersUsuario();
            return (LUsuario.AltaUsuarioXCasa(pUser,pCasa));
        }

        #endregion
    }
}
